package com.songshuai.sales.tool.service;


import com.songshuai.sales.tool.dto.request.service.item.AddServiceItemReqDto;
import com.songshuai.sales.tool.dto.request.service.item.QueryServiceItemsReqDto;
import com.songshuai.sales.tool.dto.request.service.item.UpdateServiceItemReqDto;
import com.songshuai.sales.tool.dto.response.service.item.ServiceItemsResDto;
import com.songshuai.sales.tool.model.base.YixueBaseServiceItem;
import com.songshuai.webapi.baseapi.pojo.BaseParmDto;

import java.util.List;


/**
 * 此类为[基础代码]自动生成,已经拥有基本的增删改成操作 
 * <其他请自行扩展>
 * @Author: 刘汉轩
 * @Date: 2019-04-09 13:41:33
 * 
 */
public interface YixueBaseServiceItemService{
 	
	
	/**
     * 新增
     * @param entity 
     */
    int insertSelective(YixueBaseServiceItem entity);
    
    /**
     * 批量新增
     * @param list 
     */
    void insertBatch(List<YixueBaseServiceItem> list);
    
    /**
     * 根据主键修改单条数据
     * @param entity 
     */
    int updateByPrimaryKey(YixueBaseServiceItem entity);
    
    /**
     * 根据主键批量修改数据
     * @param list 
     */
    void updateBatch(List<YixueBaseServiceItem> list);
    
    /**
     * 根据主键查询单条数据
     * @param id
     */
    YixueBaseServiceItem selectByPrimaryKey(Integer id);
    
    /**
     * 根据条件查询单条记录
     * @param entity 
     */
    YixueBaseServiceItem selectByEntity(YixueBaseServiceItem entity);
    
    /**
     * 根据条件查询多条记录
     * @param entity 
     */
    List<YixueBaseServiceItem> selectByEntityList(YixueBaseServiceItem entity);
    
    /**
     * 根据条件查询Id
     * @param entity 
     */
    Integer selectById(YixueBaseServiceItem entity);
    
    /**
     * 根据条件查询Ids
     * @param entity 
     */
    List<Integer> selectByIds(YixueBaseServiceItem entity);
    
    /**
     * 根据主键删除单条记录
     * @param id
     */
    void deleteByPrimaryKey(Integer id);
    
    /**
     * 根据主键删除多条记录
     * @param list
     */
    void deleteBatch(List<Integer> list);
    
    /**
     * 根据某些条件删除
     * @param entity
     */
    void deleteByEntity(YixueBaseServiceItem entity);


    /**
     * 分页查询服务列表
     * @param request
     * @return
     */
    List<ServiceItemsResDto> queryServiceItemPage(BaseParmDto<QueryServiceItemsReqDto> request);


    /**
     * 新增
     * @param reqDto
     * @return
     */
    Boolean addServiceItems(AddServiceItemReqDto reqDto);


    /**
     * 修改
     * @param reqDto
     * @return
     */
    Boolean updateServiceItems(UpdateServiceItemReqDto reqDto);


    /**
     * 查询指定分类下关联的分类内容
     * @param typeId
     * @return
     */
    Integer queryServiceItemNumByTypeId(Integer typeId);


}